BAB 4PHP Dasar
Navigasi
<?php
?>
$
echo
{ }
PHP
Backend Pertamamu

PHP Dasar

Selamat datang di Bab 4! Saatnya keluar dari browser dan masuk ke dunia server-side. Kamu akan belajar bahasa yang menghidupkan jutaan website — dari mesin sederhana sampai aplikasi besar.

Orientasi

Tujuan Pembelajaran & Peta Materi

Di akhir bab ini, kamu akan mampu menulis logika program di sisi server menggunakan PHP.

🎯 Setelah bab ini kamu bisa…

  • Menjelaskan peran backend & PHP dalam sebuah website
  • Menulis sintaks PHP: variabel, tipe data, dan operator
  • Mengontrol alur dengan if/else, switch, dan looping
  • Membuat fungsi dan mengelola data dengan array
  • Membangun mini project Aplikasi Penilaian Siswa

🗺️ Peta Materi

01
Fondasi
Pengantar, sintaks, variabel
02
Data
Tipe data, operator, array
03
Logika
If/else, switch, looping
04
Praktik
Fungsi, project, latihan
Konsep Dasar

Apa Itu Backend & Kenapa PHP?

Selama ini kode kamu (HTML/CSS/JS) berjalan di browser — itu disebut frontend. Tapi data login, daftar produk, dan nilai siswa disimpan di server. Kode yang berjalan di server itulah backend.

  • PHP = Hypertext Preprocessor, bahasa yang diproses di server lalu mengirim HTML ke browser
  • Dipakai oleh WordPress, Laravel, Wikipedia, dan ~70% website di dunia
  • Mudah dipelajari, gratis, dan langsung jalan tanpa konfigurasi rumit
Analogi: Frontend = pelayan yang kamu lihat. Backend = dapur tempat makanan dimasak. PHP adalah kokinya. 👨‍🍳

Alur Request Website

🧑‍💻
Browser
⚙️
Server PHP
🗄️
Database

Browser minta data → PHP olah di server → kirim balik HTML jadi

Sintaks

Sintaks PHP Dasar

Setiap kode PHP ditulis di antara tag <?php dan ?>. Perintah echo dipakai untuk menampilkan teks.

hello.php
<?php  // Ini komentar satu baris  # Ini juga komentar  /* Komentar     beberapa baris */  echo "Halo, Dunia!";  echo "<br>Belajar PHP itu seru";?>

🧩 Aturan Wajib

  • Buka dengan <?php, tutup dengan ?>
  • Setiap pernyataan diakhiri titik koma ( ; )
  • File harus berekstensi .php
  • Komentar: // , # , atau /* ... */
Sering lupa! Tanpa titik koma ; di akhir baris, PHP akan error. Ini kesalahan #1 pemula.
Penyimpanan Data

Variabel di PHP

Variabel adalah "wadah" untuk menyimpan data. Di PHP, semua variabel diawali tanda $ (dollar).

variabel.php
<?php  $nama = "Rifqi";  $umur = 16;  $kelas = "10 RPL";  echo "Halo, " . $nama;  echo " umur " . $umur;  // Output: Halo, Rifqi umur 16?>

✅ Aturan Penamaan Variabel

  • Wajib diawali $ lalu huruf atau underscore: $nama, $_data
  • Tidak boleh diawali angka: $2nama ❌
  • Case-sensitive: $nama$Nama
  • Gunakan nama deskriptif: $totalNilai bukan $x
Tips: Tanda titik ( . ) dipakai untuk menyambung (concatenation) string di PHP.
Tipe Data 1/2

Tipe Data: String, Integer, Boolean

Setiap data punya "jenis". PHP otomatis mengenali tipe data dari nilai yang kamu berikan.

TipeContohKeterangan
String"Rifqi"Teks, diapit kutip
Integer16Bilangan bulat
Float9.5Bilangan desimal
BooleantrueBenar / salah
NullnullTidak ada nilai
tipe.php
<?php  $nama    = "Rifqi";   // String  $umur    = 16;        // Integer  $tinggi  = 170.5;     // Float  $lulus   = true;      // Boolean  echo gettype($umur); // integer?>
gettype() memberi tahu tipe sebuah variabel.
Tipe Data 2/2

Tipe Data: Array

Array menyimpan banyak nilai dalam satu variabel. Bayangkan sebuah loker dengan banyak kotak bernomor.

array.php
<?php  // Indexed array (otomatis 0,1,2..)  $buah = ["Apel", "Mangga", "Jeruk"];  echo $buah[1]; // Mangga  // Associative array (pakai key)  $siswa = [    "nama"  => "Rifqi",    "nilai" => 90  ];  echo $siswa["nama"]; // Rifqi?>

📦 Jenis Array

  • Indexed — diakses dengan angka index mulai dari 0
  • Associative — diakses dengan key (nama label)
  • Multidimensional — array di dalam array (dibahas di slide Array lanjutan)
Ingat: Index array selalu mulai dari 0, bukan 1. Jadi elemen pertama adalah $buah[0].
Operasi

Operator PHP

Operator dipakai untuk mengolah nilai: berhitung, membandingkan, atau menggabungkan kondisi.

AritmatikaPerbandinganLogika
+ tambah== sama&& dan
- kurang=== identik|| atau
* kali!= beda! bukan
/ bagi> lebih besar
% sisa bagi< lebih kecil
operator.php
<?php  $a = 10; $b = 3;  echo $a + $b;  // 13  echo $a % $b;  // 1 (sisa bagi)  var_dump($a > $b); // bool(true)  var_dump(5 == "5"); // true  var_dump(5 === "5");// false?>
Penting: == membandingkan nilai saja, === membandingkan nilai dan tipe data. Selalu utamakan ===.
Percabangan

If / Else / Elseif

Percabangan membuat program mengambil keputusan berdasarkan kondisi — seperti "JIKA nilai ≥ 75, MAKA lulus".

kelulusan.php
<?php  $nilai = 82;  if ($nilai >= 90) {    echo "Nilai A - Sangat Baik";  } elseif ($nilai >= 75) {    echo "Nilai B - Lulus";  } else {    echo "Belum Lulus";  }  // Output: Nilai B - Lulus?>

🔀 Cara Kerja

  • if — cek kondisi pertama
  • elseif — kondisi tambahan jika yang atas salah
  • else — jalan jika semua kondisi salah
  • PHP mengecek dari atas ke bawah, berhenti di kondisi pertama yang benar
Logika: Kondisi di dalam ( ) harus menghasilkan true atau false.
Visual Logika

Flowchart: Alur If / Elseif / Else

Beginilah cara komputer "berpikir" saat menjalankan percabangan — ikuti panah dari atas sampai menemukan kondisi yang benar.

🧭 Cara Membaca Flowchart

  • Kapsul = Mulai / Selesai program
  • Belah ketupat = kondisi (menghasilkan Ya / Tidak)
  • Persegi = aksi yang dijalankan
  • Alur berhenti di kondisi pertama yang benar, sisanya dilewati
Hubungkan: Bandingkan dengan kode di slide sebelumnya — tiap belah ketupat = satu if / elseif.
Percabangan Banyak

Switch Case

Saat kamu membandingkan satu variabel dengan banyak nilai, switch lebih rapi daripada banyak elseif.

hari.php
<?php  $hari = "Senin";  switch ($hari) {    case "Senin":      echo "Upacara Bendera";      break;    case "Jumat":      echo "Senam Pagi";      break;    default:      echo "Belajar di kelas";  }?>

⚡ Komponen Switch

  • case — nilai yang dibandingkan
  • breakWAJIB! agar berhenti, tidak lanjut ke case bawah
  • default — dijalankan jika tidak ada case yang cocok (seperti else)
Jebakan klasik: Lupa break; membuat semua case di bawahnya ikut dijalankan (fall-through).
Visual Logika

Flowchart: Switch Case

Satu variabel dicocokkan ke banyak kemungkinan. Setiap case jadi satu cabang; default menampung sisanya.

⚡ Pola Switch

  • Variabel dicek sekali lalu dicocokkan ke tiap case
  • Tiap cabang diakhiri break agar langsung ke "Selesai"
  • default = cabang cadangan jika tidak ada yang cocok
Tanpa break, alur tidak langsung ke Selesai — malah "bocor" menjalankan case di bawahnya.
Perulangan 1/2

Looping: For & While

Looping mengulang perintah berkali-kali tanpa menulis ulang kode. Hemat tenaga, hemat baris.

for.php
<?php  // FOR: jumlah ulangan diketahui  for ($i = 1; $i <= 5; $i++) {    echo "Baris ke-" . $i . "<br>";  }  // Output: Baris ke-1 ... ke-5?>
while.php
<?php  // WHILE: ulang selama kondisi benar  $n = 1;  while ($n <= 3) {    echo "Hitung: " . $n . "<br>";    $n++; // jangan lupa naikkan!  }?>
Hati-hati infinite loop! Pada while, jika kondisi tidak pernah salah (lupa $n++), program akan mengulang selamanya dan hang.
Visual Logika

Flowchart: Looping (For & While)

Inti looping = memutar kembali ke pengecekan kondisi. Selama kondisi benar, badan loop diulang; saat salah, alur keluar.

🔁 Perhatikan Panah Balik

  • i = 1 → nilai awal (start)
  • i <= 5 → kondisi berhenti
  • i++ → perubahan tiap putaran, lalu kembali ke kondisi
  • Pola yang sama berlaku untuk while — hanya beda penulisan
Jika panah balik tak pernah membuat kondisi salah (lupa i++) → infinite loop, program hang.
Perulangan 2/2

Looping: Foreach (khusus Array)

foreach dirancang khusus untuk menelusuri setiap elemen dalam array — tanpa perlu menghitung index manual.

foreach.php
<?php  $nilai = [80, 90, 75];  // Tanpa key  foreach ($nilai as $n) {    echo "Nilai: " . $n . "<br>";  }  $siswa = ["nama"=>"Rifqi", "kelas"=>"10"];  // Dengan key => value  foreach ($siswa as $key => $val) {    echo "$key: $val<br>";  }?>

🔁 Pola Foreach

  • foreach ($array as $item) — ambil tiap nilai
  • foreach ($array as $key => $val) — ambil key & nilai
  • Tidak perlu menulis kondisi atau counter — otomatis berhenti di akhir array
Kapan dipakai? Gunakan foreach untuk array, for untuk perulangan dengan jumlah angka pasti.
Visual Logika

Flowchart: Foreach

foreach otomatis berjalan dari elemen pertama sampai terakhir array — tanpa perlu kita atur counter atau kondisi.

🧺 Kenapa Foreach Praktis?

  • Tidak perlu menulis start, kondisi, dan increment manual
  • Otomatis berhenti saat elemen array habis
  • Anti error "out of range" karena tidak menebak panjang array
Bandingkan: Flowchart ini mirip looping, tapi "kondisi" diganti pengecekan otomatis masih ada elemen?
Modularitas

Function di PHP

Function adalah blok kode yang diberi nama dan bisa dipanggil berulang. Tulis sekali, pakai berkali-kali.

function.php
<?php  // Definisi: parameter $a dan $b  function tambah($a, $b) {    return $a + $b;  }  function sapa($nama) {    return "Halo, " . $nama . "!";  }  // Pemanggilan  echo tambah(5, 3);   // 8  echo sapa("Rifqi"); // Halo, Rifqi!?>

🧱 3 Bagian Function

  • function nama() — deklarasi & nama fungsi
  • Parameter — input yang dikirim, di dalam ( )
  • return — nilai yang dikembalikan ke pemanggil
DRY Principle: Don't Repeat Yourself. Function membuat kode lebih rapi, mudah diperbaiki, dan tidak berulang.
Visual Logika

Flowchart: Function

Function itu seperti "mesin": kita kirim input (parameter), mesin memproses, lalu return hasil ke tempat ia dipanggil.

🏭 Alur Kerja Function

  • Panggil fungsi sambil mengirim argumen (5, 3)
  • Argumen masuk sebagai parameter ($a, $b) di dalam fungsi
  • return mengirim hasil keluar — proses fungsi selesai
  • Nilai balik bisa ditampung variabel atau langsung di-echo
Bentuk jajar genjang (return) menandakan data keluar dari fungsi — output dari "mesin".
Studi Kasus

Mini Project: Aplikasi Penilaian Siswa

Gabungkan semua yang kamu pelajari: array, foreach, function, dan percabangan menjadi satu program nyata.

penilaian.php
<?php  $siswa = [    ["nama"=>"Rifqi", "nilai"=>90],    ["nama"=>"Sahil", "nilai"=>72],    ["nama"=>"Dina",  "nilai"=>85]  ];  function status($n) {    return $n >= 75 ? "LULUS" : "REMIDI";  }  foreach ($siswa as $s) {    echo $s["nama"] . " = "       . status($s["nilai"]) . "<br>";  }?>

📊 Hasil Program

Rifqi
90 ✓
Sahil
72 ✗
Dina
85 ✓
Rifqi = LULUS
Sahil = REMIDI
Dina = LULUS
Konsep gabungan: array multidimensional + function + ternary + foreach. Inilah pondasi aplikasi nyata!
Latihan Mandiri

Latihan 1 — Variabel & Tipe Data

Level: Mudah

🧪 Buat Biodata Diri

Buatlah sebuah file PHP yang menyimpan biodata dirimu menggunakan variabel dengan tipe data yang sesuai, lalu tampilkan ke layar.

  1. Buat variabel $nama (string), $umur (integer), $tinggi (float), dan $pelajar (boolean).
  2. Isi semua variabel dengan data dirimu sendiri.
  3. Tampilkan kalimat: "Nama saya [nama], umur [umur] tahun, tinggi [tinggi] cm." menggunakan echo dan concatenation ( . ).
  4. Gunakan fungsi gettype() untuk menampilkan tipe data $tinggi.
Target output: Nama saya Rifqi, umur 16 tahun, tinggi 170.5 cm. Tipe $tinggi: double

💡 Tips: Screenshot slide ini untuk dikerjakan di editor PHP (XAMPP / online seperti onlinephp.io).

$nama
"str"
16
true
[ ]
PHP
Latihan 01
Latihan Mandiri

Latihan 2 — Looping & Kondisi

Level: Menengah

🔢 Pengecek Bilangan 1–20

Gabungkan looping dan percabangan untuk mengklasifikasikan angka.

  1. Gunakan for untuk menghitung dari 1 sampai 20.
  2. Untuk setiap angka, cek dengan if/else: jika angka genap (gunakan % 2 == 0), tampilkan "[angka] - Genap".
  3. Jika ganjil, tampilkan "[angka] - Ganjil".
  4. Bonus: Jika angka kelipatan 5, tambahkan tanda ⭐ di belakangnya.
Contoh output: 1 - Ganjil  |  2 - Genap  |  5 - Ganjil ⭐  |  10 - Genap ⭐ …

💡 Tantangan: Bisakah kamu membuatnya hanya dengan satu blok for? Pikirkan urutan pengecekan kondisinya.

for
while
i++
% 2
{ }
Latihan 02
Tugas Akhir

Tugas Akhir Bab 4

Level: Proyek

🚀 Upgrade Aplikasi Penilaian Siswa

Kembangkan mini project di Slide 14 menjadi aplikasi yang lebih lengkap. Terapkan SEMUA konsep Bab 4.

  1. Buat array berisi minimal 5 siswa, tiap siswa punya: nama, nilai_uts, dan nilai_uas.
  2. Buat function hitungRata($uts, $uas) yang mengembalikan nilai rata-rata.
  3. Buat function getGrade($rata) yang mengembalikan huruf: A (≥90), B (≥80), C (≥70), D (<70) — gunakan if/elseif atau switch.
  4. Gunakan foreach untuk menampilkan tabel: Nama | Rata-rata | Grade | Status (Lulus/Remidi).
  5. Tampilkan juga nilai rata-rata kelas dan nama siswa tertinggi.
Kriteria Penilaian: Kebenaran logika (40%), penggunaan function (25%), kerapian kode (20%), kelengkapan output (15%).
Kumpulkan: File tugas-bab4.php + screenshot hasil running. Deadline sesuai instruksi guru.

🎉 Selamat! Kamu telah menyelesaikan Bab 4 — PHP Dasar. Backend pertamamu sudah di tangan!

func
return
A+
foreach
$
🚀
Final Project